AWS re:invent 2016 Keynoteで発表された新サービス、Amazon Athenaって何?【概要紹介】 #reinvent #athena
現在開催中のカンファレンスイベント『AWS re:Invent 2016』、Keynoteにて発表された新サービスの中に『Amazon Anthena』というものがありました。『標準SQLを使ってAmazon S3のデータを簡単に分析する事が出来るインタラクティブなクエリサービス』と謳っておりますが、このサービスはどのような用途、目的で作られたものなのでしょうか?
キーノート終了後のタイミングで、下記『やってみた』エントリが早速公開されています。どんな感じのインタフェース、処理内容となっているのかについては下記エントリをご覧頂くとして、当エントリではAmazon Athenaの概要について言及していきたいと思います。
Amazon Athenaとは何か
Amazon Athenaは、標準SQLを使ってAmazon S3に格納されているデータに直接アクセスして容易に分析を行う事が出来る、インタラクティブなクエリサービスです。AWS管理コンソールで幾つかのアクションを実行する事で、Amazon S3に格納されたデータをAthenaで参照し、標準SQLを使ってアドホッククエリを実行し、数秒で結果を得る事が可能になります。
Athenaはサーバレスなので、セットアップや管理インフラは不要です。利用者には実行するクエリに対してのみ費用が発生します。Athenaは自動的にクエリを並列実行する為、大規模なデータセットや複雑なクエリの場合でも高速に処理を行い、結果を得る事が出来ます。
Amazon Athenaの『使いどころ』
Amazon Athenaは、Amazon S3に格納されているデータを分析するのに便利なサービスです。Athenaを使用して、データを集約したり、Athenaにデータをロードする必要無く、ANSI SQLを使用してアドホックなクエリを実行出来ます。
Athenaを使用して、非構造化データ、半構造化データ、構造化データを処理する事が出来ます。例えば、CSV、JSON、Apache ParquetやApache ORC等です。
- Hadoop用カラムナストレージ「Parquet」正式版をTwitterがオープンソースで公開 - Publickey
- Apache ORC • High-Performance Columnar Storage for Hadoop
AthenaはAmazon QuickSightとも統合されており、データを簡単に可視化する事が可能です。(この辺りは実際に機能が利用可能かどうか、後程確認、検証してみたいと思います。)また、Athenaを使ってレポートを生成したり、JDBCドライバを介してBIツールやSQLクライアントでデータを探索する事も可能です。
Athenaへのアクセス
Athenaにアクセスするには、AWS管理コンソールを使う方法とJDBC接続を使う方法があります。AWS管理コンソール経由での方法については下記をご参照ください。
また、JDBC接続での方法については下記をご参照ください。
テーブルの作成
テーブルを作成する前に、まずは『データベース』と『テーブル』という用語の意味を整理しておく事がポイントです。
Athenaにおける『テーブル』
テーブルとは、データの保存方法の定義です。テーブルは本質的にはリレーションと同様の方法でデータを記述する『メタデータ』なのですが、Athenaのテーブルとデータベースについては、一般的な意味合いでの『リレーショナルデータベース』を指すものでは無いという事に注意してください。
Athenaにおける『データベース』
Athenaでは、データベースとは単に『テーブルの論理的なグループ化』です。シノニムには、カタログと名前空間が含まれます。
Athenaは、データベースとAmazon S3に格納されたデータ用に作成したテーブルに関する情報とスキーマを格納するために内部データカタログを使用します。データ定義言語(DDL)もしくはAWS管理コンソールを使ってカタログを変更出来ます。定義したスキーマは明示的に削除しない限り、自動的に保存されます。
Athenaはスキーマを"読み込み"に適用します。これはクエリが実行された時、Amazon S3に格納されているデータに対してテーブル定義が適用されるという事を意味します。データの読み込みや変換は必要ありません。
Amazon Athenaは、分散SQLエンジンであるPrestoを使ってクエリを実行します。
コンソールのAthena Query EditorでHive DDLを使用して作成したテーブルを用い、データを定義します。この作業を行う例としてAthena内にサンプルデータも用意されています。また、AthenaにはAmazon S3に格納されたデータに基づいてテーブルを作成するためのウィザードも用意されています。詳細については以下をご参照ください。
データのクエリ
テーブルの作成に使用したAthena Query Editorウインドウを使ってデータを照会します。 Athenaを使用すると、クエリエディタから直接DDL文またはSQLクエリを記述出来ます。照会した結果は自動的にAmazon S3に保存されます。
結果を共有する場所のベースとなるプレフィックスを変更するには設定変更を行います。また、結果をCSV形式でダウンロードするオプションもあります。AthenaはANSI SQL標準クエリをサポートしています。
まとめ
という訳で新サービス『Amazon Athena』の概要に関するご紹介でした。早速一般利用可能な状態となっているAmazon Athena、関連ドキュメントも既に公開されています。シンプルではありますが使い勝手も良さそうなこのサービス、これから年末に掛けて色々触ってみようと思います。こちらからは以上です。